/*
 * 标注员任务包相关API
 */
import * as API from "./api";

/**
 * 分页查询标注员任务包领取及完成情况列表
 * @param {Object} params {currentPage, pageSize, labelerName, startDate, endDate, status}
 */
export const getLabelerTaskPackageListAPI = (params) => {
  return API.GET('/admin/labeler-task-package', params);
};

/**
 * 新增标注员任务包记录
 * @param {Object} data 标注员任务包数据
 */
export const addLabelerTaskPackageAPI = (data) => {
  return API.POST('/admin/labeler-task-package', data);
};

/**
 * 修改标注员任务包记录
 * @param {Number} id 记录ID
 * @param {Object} data 标注员任务包数据
 */
export const updateLabelerTaskPackageAPI = (id, data) => {
  return API.PUT(`/admin/labeler-task-package/${id}`, data);
};

/**
 * 删除标注员任务包记录
 * @param {Number} id 记录ID
 */
export const deleteLabelerTaskPackageAPI = (id) => {
  return API.DELETE(`/admin/labeler-task-package/${id}`);
};

/**
 * 下载导入模板
 */
export const downloadTaskPackageTemplateAPI = () => {
  return API.FILE({
    method: 'get',
    url: '/admin/labeler-task-package/template',
    responseType: 'blob'
  });
};

/**
 * 导入标注员任务包数据
 * @param {File} file 包含Excel文件
 * @param {Object} config 配置对象，支持onProgress回调
 */
export const importLabelerTaskPackageAPI = (file, config = {}) => {
  const formData = new FormData();
  formData.append('file', file);
  return API.FILESubmit('/admin/labeler-task-package/import', formData, config);
};

/**
 * 导出标注员任务包数据
 * @param {Object} params 查询参数
 */
export const exportLabelerTaskPackageAPI = (params) => {
  return API.FILE({method: 'get', url: '/admin/labeler-task-package/export', responseType: 'blob'}, null, params);
};